package com.example.kotlin.design.pattern.proxy;

import android.content.Context;


import org.jetbrains.annotations.Nullable;


public interface IConnectorManager extends IBaseConnector {

    void initMbbConnector(Context context);

//    @CheckColorToken
//    void refreshHarmanAccessToken(@NotNull AbsConnectorQueryCallBack<AccessToken> callBack);

    @CheckColorToken
    void authenticate(String idToken, String clientName, @Nullable String vin);

    void clearVehicle();

    @CheckColorToken
    void revokeToken();

    @CheckColorToken
    void reloadOperationListPost(String vin);

//    @CheckColorToken
//    void reloadOperationList(String vin, @Nullable AbsConnectorQueryCallBack<OperationList> callBack);
//
//    @CheckColorToken
//    void queryVsr(boolean isRequestCurrent, AbsConnectorCallBack<StatusReport> vsrCallBack);
//
//    @CheckColorToken
//    void queryStoredVsr(@Nullable AbsConnectorCallBack<StatusReport> vsrCallBack);
//
//    @CheckColorToken
//    void queryCurrentVsr(@Nullable AbsConnectorCallBack<StatusReport> vsrCallBack);
//
//    @CheckColorToken
//    void queryVsrAndWarnings(@Nullable AbsConnectorCallBack<StatusReport> vsrCallBack, @Nullable AbsConnectorCallBack<InstrumentClusterReport> warningCallBack);
//
//    @CheckColorToken
//    void queryAsrConfig(String vin, @NotNull AbsConnectorQueryCallBack<Configuration> callBack);
//
//    @CheckColorToken
//    void activateAsrOrNot(String vin, boolean toActive, @NotNull AbsConnectorCallBack<Boolean> callBack);
//
//    @CheckColorToken
//    void updateAsrConfig(String vin, @NotNull String phoneNumber, @NotNull String firstName, @NotNull String lastName, @NotNull String dealerId, @NotNull AbsConnectorCallBack<Boolean> callBack);
//
//    @CheckColorToken
//    void updateAsrConfig(String vin, Configuration config, @NotNull AbsConnectorCallBack<Boolean> callBack);
//
//    @CheckColorToken
//    void queryVehicleLocation(String vin, @NotNull AbsConnectorQueryCallBack<CarFinderLocation> callBack);
//
//    @CheckColorToken
//    void isTheftAlarmActivate(String vin, @NotNull AbsConnectorCallBack<Boolean> callBack);
//
//    @CheckColorToken
//    void queryTheftAlarmHistory(String vin, int offset, int limit, @NotNull AbsConnectorQueryCallBack<List<TheftAlarmAlert>> callBack);
//
//    @CheckColorToken
//    void queryLastTheftAlarm(String vin, @NotNull AbsConnectorQueryCallBack<TheftAlarmAlert> callBack);
//
//    @CheckColorToken
//    void deleteTheftAlarmHistory(String vin, AbsConnectorCallBack<Boolean> callBack);
//
//    @CheckColorToken
//    void honkFlash(String vin, int duration, double latitude, double longitude, String spin, RemoteHonkAndFlashAction.Type type, @NotNull AbsSpinCheckConnectorCallBack<Boolean> callBack);
//
//    boolean isNeedSpin(ServiceEnum serviceEnum);
//
//    @CheckColorToken
//    void lock(boolean toLock, String vin, String spin, @NotNull AbsSpinCheckConnectorCallBack<Boolean> callBack);
//
//    @CheckColorToken
//    void queryCallCenter(String vin, @NotNull AbsConnectorQueryCallBack<CallCenter> callBack);
//
//    @CheckColorToken
//    void queryRluHistory(String vin, @NotNull AbsConnectorQueryCallBack<List<LockUnlockVehicleAction>> callBack);
//
//    boolean isAsrEnableOrRefresh();
//
//    boolean isAsrEnable();
//
//    boolean isAuthSuccess();
//
//    void getServiceDisabledReasons();
//
//    boolean hasDefaultVehicle();
//
//    @CheckColorToken
//    void querySpeedAlertDefinitionList(String vin, @NotNull AbsQueryCallBack<SpeedAlertDefinitionList> callBack);
//
//    @CheckColorToken
//    void updateSpeedAlertDefinitionList(String vin, @NotNull List<SpeedAlertDefinition> list, @NotNull AbsCallBack<Boolean> callBack);
//
//    @CheckColorToken
//    void querySpeedAlertViolationList(String vin, @Nullable Integer limit, @NotNull AbsQueryCallBack<List<SpeedAlertViolation>> callBack);
//
//    @CheckColorToken
//    void deleteSpeedAlertViolations(String vin, @Nullable SpeedAlertViolation speedAlertViolation, @NotNull AbsCallBack<Boolean> callBack);
//
//    @CheckColorToken
//    void queryGeofencingDefinitionList(String vin, @NotNull AbsQueryCallBack<GeofencingDefinitionList> callBack);
//
//    @CheckColorToken
//    void updateGeofencingDefinitionList(String vin, @NotNull List<GeofencingDefinition> list, @NotNull AbsCallBack<Boolean> callBack);
//
//    @CheckColorToken
//    void queryGeofencingViolationList(String vin, @Nullable Integer limit, @NotNull AbsQueryCallBack<List<GeofencingViolation>> callBack);
//
//    @CheckColorToken
//    void deleteGeofencingAlertViolations(String vin, @Nullable GeofencingViolation geofencingViolation, @NotNull AbsCallBack<Boolean> callBack);
//
//    @CheckColorToken
//    void queryValetAlertDefinition(String vin, @NotNull AbsQueryCallBack<ValetAlertDefinition> callBack);
//
//    @CheckColorToken
//    void updateValetAlertDefinition(String vin, ValetAlertDefinition valetAlertDefinition, @NotNull AbsQueryCallBack<Boolean> callBack);
//
//    @CheckColorToken
//    void deleteValetAlertDefinition(String vin, @NotNull AbsQueryCallBack<Boolean> callBack);
//
//    @CheckColorToken
//    void queryValetAlertViolationList(String vin, @Nullable Integer limit, @NotNull AbsQueryCallBack<List<ValetAlertViolation>> callBack);
//
//    @CheckColorToken
//    void deleteAlertViolation(String vin, @Nullable ValetAlertViolation valetAlertViolation, @NotNull AbsQueryCallBack<Boolean> callBack);
}
